Historically, basic input/output system (BIOS) software, which is low level software used to boot up (i.e., perform boot operations such as loading and starting an operating system, testing hardware, and the like) and perform low level operations in a computer system, has typically been incorporated by so-called original equipment manufacturers (OEMs), namely the computer manufacturers. To provide BIOS support for processors, a processor manufacturer (so-called silicon manufacturer) provides detailed information to the OEMs. This information is typically in the form of source code. However, by providing this code hardware intellectual property (IP) aspects of the processor, such as how to program it and underlying hardware details, are exposed to third parties. Further, by providing source code, the OEMs can modify the code, integrate it in a non-standard manner, or tweak it to support non-standard hardware which can raise complexity and operating concerns, leading to added support costs for the silicon manufacturer.
Examples of information typically provided to initialize a system include details regarding a processor, interconnect links, memory fabric, and so forth. Such details may include register definitions and interfaces to this hardware. This information is distributed, in addition to OEMs, to independent BIOS vendors (IBVs). As processors and other advanced silicon controllers are incorporated into different types of systems and devices (e.g., mobile computing nodes such as tablets and Smartphones), the varying formats of BIOS will expand greatly, raising more IP concerns and support challenges.
Furthermore, malicious attacks on BIOS will only become more prevalent in the future. Thus, providing a BIOS that is easy to support over varying platform configurations used by OEMs and IBVs (see above), while also being secure against malware and the like, raises IP concerns and support challenges further still.